Routing of data is a process of selecting a path for transmitting data in a network, such as a computer network or a telecommunications network, or between or across multiple networks. Data to be routed is normally in form of a discrete, discontinuous representation of the information, i.e. in form of digital data. Accordingly, on this basic level, there is no different between different data besides the encoded content/information. Some information, e.g. regarding the destination of the data package is included into a header during encapsulation.
In traditional networks, e.g. IP-based networks, data is typically routed from one node to the next node until the destination as indicated in the header is reached. Every node is configured to comprise as an autonomous system a proper set of routing parameters. The next step for data to be routed is determined on every node handling the data based on the routing parameters locally stored in a routing table. Accordingly, it is only possible for the user to specify the destination but not the path to be used when transmitting the data package.
However, data from different sources may require different, specific data handling, which also includes the routing. This might be because of technical but also because of personal requirements.
As an example, if a user wants to establish a video conference call. If this traffic is routed through normal channels it will be multiplexed with other sources of information and could suffer from congestion, jitter and lag. As a result, the quality of the video conference call, and as such the user experience will suffer. In order to avoid this, appropriate routing, taking into account the data source might be applied.
As another example, a user might subscribe for a distinct service level with a service provider. On the other hand if service provider could detect that the traffic sent is of high importance and customer has subscribed to a premium service the service provider could then alter the routing tables based on some rules and send the call via a completely different route with more stringent quality levels ensuring that the customer is getting a better experience.
As another example, transfer of data may require additional security, e.g the data should not be sent through certain locations (network nodes countries/etc.) where it could be snooped on.
As the nodes in traditional networks act autonomously based on the routing tables, every data package is normally handled the same way, even though it is tried to control network traffic by including certain parameters.
In contrast thereto, in modern networks, so called software defined networks, routing parameters are held centrally, on a control plane, whereas forwarding of the data according to the routing parameters is done by the underlying system, the so called data plane. Due to the centralised approach, individual routing is technical possible, but still requires respective configuration on the level of the control plane. For the user of the network, who wants to or has to transmit data, there is no possibility to decide on routing path and data handling.
Accordingly, there is a need to enhance the possibilities for making use of individualized routing for the users.